M design patterns